
-- redis中的key
local key = KEYS[1]
-- 规定时间内可访问次数
local count = tonumber(ARGV[1])
-- 过期时间
local period = tonumber(ARGV[2])
-- 当前访问次数
local current = tonumber(redis.call('get', key) or "0")

-- 如果当前访问次数加1后超过阈值，返回0表示访问被拒绝
if current + 1 > count then
  return 0
end
   -- 没有超阈值，将当前访问数量+1，
   current = redis.call("INCRBY", key, "1")

-- 如果当前访问次数变为1（即从无到有），设置过期时间
if tonumber(current) == 1 then
   -- 设置过期时间
   redis.call("expire", key, period)
end
-- 返回当前访问次数
   return tonumber(current)
